package ConnectivityEditor.Window;
import org.eclipse.swt.SWT;
import org.eclipse.swt.dnd.DragSource;
import org.eclipse.swt.dnd.DragSourceEvent;
import org.eclipse.swt.dnd.DragSourceListener;
import org.eclipse.swt.dnd.TextTransfer;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.TabFolder;
import org.eclipse.swt.widgets.TabItem;
import org.eclipse.swt.widgets.Tree;
import Window.DNDTransfer;
public class ConnectivityBrowserUI implements DragSourceListener {
Tree tree;
Display display;
Shell shell;
Composite parent;
public ConnectivityBrowserUI(Composite parent, int style) {
display = parent.getDisplay();
shell = parent.getShell();
setMainView(parent);
setData();
}
public void close() {
}
private void setData() {
}
private void setMainView(Composite composite) {
parent = composite;
TabFolder tabFolder = new TabFolder(parent, SWT.NONE);
tabFolder.setLayout(new RowLayout(SWT.HORIZONTAL));
FormData fd_group = new FormData();
fd_group.top = new FormAttachment(0, 0);
fd_group.left = new FormAttachment(0, 0);
fd_group.bottom = new FormAttachment(0, 210);
fd_group.right = new FormAttachment(0, 600);
tabFolder.setLayoutData(fd_group);
// String[] category = new String[] { "Stud", "Hole", "Axle", "Slider", "Hinge", "Ball", "Fixed", "Gear", "Rail" };
Composite unit = new StudEditorComposite(tabFolder, SWT.NONE);
TabItem tbtmNewItem = new TabItem(tabFolder, SWT.NONE);
tbtmNewItem.setControl(unit);
tbtmNewItem.setText("Stud");
unit.pack();
unit = new HoleEditorComposite(tabFolder, SWT.NONE);
tbtmNewItem = new TabItem(tabFolder, SWT.NONE);
tbtmNewItem.setControl(unit);
tbtmNewItem.setText("Hole");
unit.pack();
unit = new AxleEditorComposite(tabFolder, SWT.NONE);
tbtmNewItem = new TabItem(tabFolder, SWT.NONE);
tbtmNewItem.setControl(unit);
tbtmNewItem.setText("Axle");
unit.pack();
unit = new BallEditorComposite(tabFolder, SWT.NONE);
tbtmNewItem = new TabItem(tabFolder, SWT.NONE);
tbtmNewItem.setControl(unit);
tbtmNewItem.setText("Ball");
unit.pack();
unit = new FixedEditorComposite(tabFolder, SWT.NONE);
tbtmNewItem = new TabItem(tabFolder, SWT.NONE);
tbtmNewItem.setControl(unit);
tbtmNewItem.setText("Fixed");
unit.pack();
unit = new HingeEditorComposite(tabFolder, SWT.NONE);
tbtmNewItem = new TabItem(tabFolder, SWT.NONE);
tbtmNewItem.setControl(unit);
tbtmNewItem.setText("Hinge");
unit.pack();
unit = new SliderEditorComposite(tabFolder, SWT.NONE);
tbtmNewItem = new TabItem(tabFolder, SWT.NONE);
tbtmNewItem.setControl(unit);
tbtmNewItem.setText("Slider");
unit.pack();
unit = new CollisionEditorComposite(tabFolder, SWT.NONE);
tbtmNewItem = new TabItem(tabFolder, SWT.NONE);
tbtmNewItem.setControl(unit);
tbtmNewItem.setText("CollisionBox");
unit.pack();
}
@Override
public void dragStart(DragSourceEvent event) {
event.image = null;
Object object = null;
Control control = ((DragSource) event.getSource()).getControl();
if (control.equals(tree)) {
object = tree.getSelection()[0].getData();
}
if (object == null) {
event.doit = false;
} else {
DNDTransfer.getInstance().setData(object);
}
}
@Override
public void dragSetData(DragSourceEvent event) {
if (TextTransfer.getInstance().isSupportedType(event.dataType)) {
event.data = DNDTransfer.getInstance().getData();
}
}
@Override
public void dragFinished(DragSourceEvent event) {
DNDTransfer.getInstance().end();
}
}